MS Sentinel

Tags:

Log collecting

|

Cloud

|

Automated response

|

Reporting

Úvod

Microsoft Sentinel je cloudový SIEM . Umožňuje sbírat logy z různých zdrojů, parsování a prohlížení v tabulkách, tvorbu alertových služeb reportů a podobně.

Jelikož jde o cloudovou službu není možné jej instalovat na vlastních serverech. Vyjma napojování našich "on premise" serverů vše probíhá v prostředí Microsoft Azure

Instalace MS Sentinel

Azure ->Microsoft Sentinel (MSS) - použijte search, nebo sekci nedávno navštívených stránek

V levé horní části naleznete tlačítko create . V následujícím okně je třeba vybrat, nebo vytvořit Log Analytics workspace (LAw). Vytvořte nový LAw a vyplňte požadovaná pole. Po vytvoření LAw se vraťe k vytváření nové instance MSS, vyberte požadovaný LAw. Vyčkejte na poběhnutí instalace.

Azure Arc

Azure Arc umožňuje napojit on premise servery, servery jiných cloudových providerů do Azure prostředí. Dále poskytuje informace o těchto serverech, včetně serverů přímo v Azure. Poskytuje služby jako například Heartbeat a je nezbytný pro sběr logů vlastních formátů, speciálních zdrojů apod.

Azure ->Azure Arc - použijte search, nebo sekci nedávno navštívených stránek

Pro přidání serveru jednotlivě vyberte Overview->Add resources->Machines->Add/Create->Add a machine->Add a single server-> Generate script . Vyplňte a vygenerovaný script vložte do terminálu své VM.

Tvorba custom table

Azure ->Monitor - použijte search, nebo sekci nedávno navštívených stránek

V sekci Settings naleznete Data Collection endpoints vytvořte nový

Azure ->Log analytics workspaces - použijte search, nebo sekci nedávno navštívených stránek

Vyberte příslušný LAw, v sekci Settings Tables, v levé horní části této sekcte je možnost create, zde vyberte DCR-based table.

Vytvořte nový table, využijte endpoint který jste právě vytvořili a současně vytvořte nové pravidlo. Doporučuji pojmenovat tak, aby bylo posznat že jde o pravidlo použité k vytvoření table

Importujte schema (pokud jde o test využite jedno ze schemat v sekci example schemas) a případně upravte KQL parser

Example schema

{"RawData": "AppName,Id,Cause,Message"}

Tvorba pravidla pro sběr logů (custom text logs)

Azure ->Monitor - použijte search, nebo sekci nedávno navštívených stránek

V sekci Settings naleznete Data Collection rules vytvořte nový

Použijte stejný region, resource group a vámi vytvořený endpoint.

V sekci resources zvolte zdrojové zařízení, zapněte endpointy a zvolte endpoint na zařízení.

V sekci collect and deliver přidejte datasource typu custom text logs. File pattern je cesta k souborům s logy, table name zvolte vámi vytvořený table, nezapoměňte na příponu _CL a případně upravte transform parser. Jako destinaci zvolte svůj Log Analytics workspace

Testování

Pro ověření funkčnosti vytvořte nějaké logy v sledovaných souborech a spousťte query v destinaci(MS Senitnelu)

Vytvořit základní test logy můžete například pomocí echo echo AppName,Id,Cause,Message > /var/log/test/sentinel/test.log - přepíše soubor

Použití > přepisuje obsah souboru, >> píše na konec souboru

Pro zobrazení logů je třeba spustit query ve tvaru jména tabulky v MS Sentinel. Tedy pokud jméno tabulky do které se sbírané logy ukládají je testTable1_CL, query bude také jen testTable1_CL

Log pro parser: 2025-03-06T11:31:29+00:00,AppName,Id,Cause,Message

Parser

V tuto chvíli úspěšně přijímáte logy ale data jsou stále ve stejné formě jako v souboru, tedy vypadají nějak takto:

AppName,Id,Cause,Message

Proto je třeba je tzv. rozparsovat pomocí KQL (Kusto query language). Cílem je aby každá hodnota měla svůj sloupec, s odpovídajícím názvem.

Důležíté funkce a klíčová slova

extend

extend column = "value"

Vytvoří sloupec

Vytvoří sloupec column a dá mu hodnotu value

project

project column, column2

Definuje, které sloupce se z query vrátí

Vrátí sloupce column a column2

split()

split("hello,world")

Funkce rozdělující string na array stringů

-> ["hello","world"]

to[datatype]()

todatetime("2025-03-06T11:31:29+00:00")

toint("9")

castuje datatype

"2025-03-06T11:31:29+00:00" -> 2025-03-06T11:31:29+00:00

"9" -> 9

Zadání parser

Konzultujte s dokumentací a vytvořte parser pro své logy ve tvaru: timestamp,AppName,Id,Cause,Message

Tedy například: 2025-03-06T11:31:29+00:00,TestApp,1,test,testing

Pokud nemáte splněné zadání s posíláním logů do Azure využijte tvorbu nové tabulky. Není třeba tabulku kompletně vytvořit, stačí během tvorby nahrát schema soubor.json s obsahem:

{"RawData": "2025-04-11T07:31:23+00:00,TestApp,1,test,testing"}

A vytvořte parser v sekci transformace

create custom log -> 2. schema and transformation -> transformation editor

Správně castujte datatypy, hlavně čas a integer

Výsledkem budou sloupce s hodnotami:

Sloupec

Hodnota

TimeGenerated

2025-04-11T07:31:23+00:00

AppName

TestApp

Id

1

Cause

test

Message

testing

Pošlete screenshot obsahující query(parser) a výsledné sloupce pro získání známky, případně zpětné vazby.

Logo

Adresa

Preslova 72/25

Praha 5 - Smíchov

150 21

n17r0 © 2025